﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using SistemaGPS.NET.Persistencia;
using SistemaGPS.NET.Dominio;
namespace SistemaGPS.NET
{
    public class Vehiculos : IVehiculos
    {
        private VehiculoDAO vehiculoDAO = null;
        private VehiculoDAO VehiculoDAO
        {
            get
            {
                if (vehiculoDAO == null)
                    vehiculoDAO = new VehiculoDAO();
                return vehiculoDAO;

            }
        }
        private ClienteDAO clienteDAO = null;
        private ClienteDAO ClienteDAO
        {
            get
            {
                if (clienteDAO == null)
                    clienteDAO = new ClienteDAO();
                return clienteDAO;

            }
        }

        public Vehiculo CrearVehiculo(string placa, int cliente)
        {
            Cliente clienteExistente = ClienteDAO.Obtener(cliente);
            Vehiculo vehiculoACrear = new Vehiculo()
            {
                Placa = placa,
                Cliente = clienteExistente
            };
            return VehiculoDAO.Crear(vehiculoACrear);
        }

        public Vehiculo ObtenerVehiculo(int codigo)
        {
            return VehiculoDAO.Obtener(codigo);
        }

        public Vehiculo ModificarVehiculo(int codigo, string placa, int cliente)
        {
            Cliente clienteExistente = ClienteDAO.Obtener(cliente);
            Vehiculo vehiculoAModificar = new Vehiculo()
            {
                Codigo = codigo,
                Placa = placa,
                Cliente = clienteExistente
            };
            return VehiculoDAO.Modificar(vehiculoAModificar);
        }

        public void ElminarVehiculo(int codigo)
        {
            Vehiculo vehiculoExistente = VehiculoDAO.Obtener(codigo);
            VehiculoDAO.Eliminar(vehiculoExistente);
        }

        public List<Vehiculo> ListarVehiculos()
        {
            return VehiculoDAO.ListarTodos().ToList();
        }
    }
}
